#define  _CRT_SECURE_NO_WARNINGS

#include<iostream>

using namespace std;

void reverse(int* left, int* right)
{
    while (left < right)
    {
        int temp = *left;
        *left = *right;
        *right = temp;
        left++;
        right--;
    }
}

//int* plusOne(int* digits, int digitsSize, int* returnSize)
//{
//    int* arr = (int*)calloc(digitsSize + 1, sizeof(int));
//    for (int i = 0, j = digitsSize - 1; j >= 0; j--, i++)
//    {
//        arr[i] = digits[j];
//    }
//    arr[0] += 1;
//    int flag = 0;
//    for (int i = 0; i < digitsSize; i++)
//    {
//        flag = 1;
//        if (arr[i] >= 10)
//        {
//            flag = 0;
//            arr[i + 1]++;
//            arr[i] %= 10;
//        }
//        else
//        {
//            break;
//        }
//    }
//    if (flag == 0)
//    {
//        *returnSize = digitsSize + 1;
//        reverse(arr, arr + digitsSize);
//    }
//    else
//    {
//        *returnSize = digitsSize;
//        reverse(arr, arr + digitsSize - 1);
//    }
//    return arr;
//}

//int main()
//{
//    int arr[] = { 8,9,9,9 };
//    int* ret = (int*)malloc(sizeof(int) * 101);
//    int i = 0;
//    ret = plusOne(arr, 4, &i);
//    
//    return 0;
//}